Coordinating Foreign Modules with a Parallelizing Compiler

نویسندگان

  • Peter Steenkiste
  • Jaspal Subhlok
چکیده

Integrating task and data parallelism in a language framework has attracted considerable attention. Both the Fx language at Carnegie Mellon University and High Performance Fortran standard have adopted a simple model of task parallelism that allows dynamic assignment of processor subgroups to tasks in the application. However, the tasks must be written in the native language, i.e Fx or HPF. Large scientiic parallel applications often use a mix of languages for a variety of reasons, including the reuse of existing code and the suitability of diierent languages for diierent modules. In this paper we demonstrate how a \native" parallelizing compiler can be used to create parallel applications that combine native modules with \foreign" modules written in a diierent parallel language. We argue that virtually all the advantages of translating a foreign module to the native language can be achieved by using the native compiler to coordinate the interactions with the foreign module. In particular, the ability to dynamically modify the assignment of processors among native modules and foreign modules is retained. The foreign module interacts with the native program through shared arguments and the changes in the code for the foreign module are minimal. We demonstrate how this idea allowed us to accelerate the development of the Airshed air quality model at Carnegie Mellon using the Fx language and parallelizing compiler. We also examine the tradeoos between the nature of interaction permitted with the foreign module and the complexity of language and runtime support.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Near fine grain parallel processing using a multiprocessor with MAPLE

Multi-grain parallelizing scheme is one of effective parallelizing schemes which exploits various level parallelism: coarse-grain(macro-dataflow), medium-grain(loop level parallelizing) and near-fine-grain(statements parallelizing) from a sequential program. A multi-processor ASCA is designed for efficient execution of multi-grain parallelizing program. A processing element called MAPLE are mai...

متن کامل

A Portable Parallelizing Compiler with Loop Partitioning

Multithreaded programming support seems to be the most obvious approach to helping programmers take advantage of operating system parallelism. In this paper, we present the design and implementation of a portable FORTRAN parallelizing compiler (PFPC) with loop partitioning on our AcerAltos-10000 multiprocessor system, running an OSF/1 multithreaded OS. In order to port the PFPC to the system en...

متن کامل

A Framework To Study Automatically Parallelized Programs

The eeectiveness of automatic parallelization could be enhanced if we take into account important factors such as cache utilization, memory delays, synchronization time etc. This would require a framework that ties up a parallelizing compiler with a simulator that models all parameters very eeectively. The gathered information could be used to tune the parallelizing compiler to get better perfo...

متن کامل

Coarse-Grain Task Parallel Processing Using the OpenMP Backend of the OSCAR Multigrain Parallelizing Compiler

This paper describes automatic coarse grain parallel processing on a shared memory multiprocessor system using a newly developed OpenMP backend of OSCAR multigrain parallelizing compiler for from single chip multiprocessor to a high performance multiprocessor and a heterogeneous supercomputer cluster. OSCAR multigrain parallelizing compiler exploits coarse grain task parallelism and near ne gra...

متن کامل

A Parallelizing Compiler Based on the Functional Parallelism: Its Structure and Implementation

In this paper, we describe the structure of C parallelizing compiler based on the functional parallelism. For generating coarse grain processes, the function-oriented division strategy is adapted in our compiler. In our process generation method, a function written in the program is a unit of coarse grain distributed processes. Our compiler is constructed as a preprocessor on GNU C compiler. We...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1997